package com.car.service.vo;

import com.car.service.entity.ChatMessage;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 聊天消息视图对象
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChatMessageVO {
    
    /**
     * 消息ID
     */
    private Long id;
    
    /**
     * 会话ID
     */
    private String sessionId;
    
    /**
     * 发送者ID
     */
    private Long senderId;
    
    /**
     * 发送者类型（1：用户，2：客服）
     */
    private Integer senderType;
    
    /**
     * 发送者名称
     */
    private String senderName;
    
    /**
     * 发送者头像
     */
    private String senderAvatar;
    
    /**
     * 接收者ID
     */
    private Long receiverId;
    
    /**
     * 接收者名称
     */
    private String receiverName;
    
    /**
     * 消息内容
     */
    private String content;
    
    /**
     * 消息类型（1：文本，2：图片，3：语音）
     */
    private Integer messageType;
    
    /**
     * 是否已读（0：未读，1：已读）
     */
    private Integer readStatus;
    
    /**
     * 创建时间
     */
    private Date createTime;
    
    /**
     * 从实体转换为VO
     */
    public static ChatMessageVO fromEntity(ChatMessage entity) {
        if (entity == null) {
            return null;
        }
        
        return ChatMessageVO.builder()
                .id(entity.getId())
                .sessionId(entity.getSessionId())
                .senderId(entity.getSenderId())
                .senderType(entity.getSenderType())
                .receiverId(entity.getReceiverId())
                .content(entity.getContent())
                .messageType(entity.getMessageType())
                .readStatus(entity.getReadStatus())
                .createTime(entity.getCreateTime())
                .build();
    }
} 